﻿using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Viettel.VOFFICE.Web.Helpers;
using Viettel.VOFFICE.util;

namespace Viettel.VOFFICE.Web.Controllers
{
    /// <summary>
    /// Trang điều hướng đến các chức năng cho người dùng trong hệ thống
    /// </summary>
    public class SystemController : BaseController
    {
        /// <summary>
        /// ctor
        /// </summary>
        public SystemController() { }

        public ActionResult Default()
        {
            List<TableField> fields;
            var strQuery = QueryHelper.MakeDocInboxQuery(out fields);
            //tạo class để chứa truy vấn
            var builder = DynamicTypeBuilder.CreateTypeBuilder("DynamicDocInboxAssembly", "DocInboxModule", "DocInboxType");
            foreach (var tableField in fields)
            {
                DynamicTypeBuilder.CreateAutoImplementedProperty(builder, tableField.FieldAs, QueryHelper.GenType(tableField.DataType));
            }
            Type resultType = builder.CreateType();
            var data = unitOfWork.Context.Database.SqlQuery(resultType, strQuery).ToJsonString();
            //foreach (dynamic item in data)
            //{
            //    var code = item.Code.ToString();
            //}
            return View();
        }

        /// <summary>
        /// Vào sổ văn bản đến
        /// </summary>
        /// <returns></returns>
        public ActionResult DocumentInbox()
        {
            return View();
        }

        /// <summary>
        /// Xem chi tiết văn bản đến
        /// </summary>
        /// <returns></returns>
        public ActionResult ViewDocumentInbox(int id)
        {
            return View();
        }

        /// <summary>
        /// Sửa văn bản đến
        /// </summary>
        /// <param name="docId"></param>
        /// <returns></returns>
        public ActionResult EditDocumentInbox(int docId)
        {
            return View();
        }

        /// <summary>
        /// Vào sổ văn bản đi
        /// </summary>
        /// <returns></returns>
        public ActionResult DocumentOutbox()
        {
            return View();
        }

        /// <summary>
        /// Sửa văn bản đi đã vào sổ
        /// </summary>
        /// <returns></returns>
        public ActionResult EditDocumentOutbox()
        {
            return View();
        }

        /// <summary>
        /// Danh sách văn bản đến cho văn thư, lấy trực tiếp từ bảng docinbox
        /// </summary>
        /// <returns></returns>
        public ActionResult DocInboxListForFileClerk()
        {
            return View();
        }

        /// <summary>
        /// Danh sách văn bản đến cho chuyên viên, và các nút khác lấy trực tiếp từ luồng.
        /// </summary>
        /// <returns></returns>
        public ActionResult DocInboxList()
        {
            return View();
        }
    }
}
